<?php
class UsersController extends AppController {
	
	var $name = 'Users';
	var $uses = array('User','Departamento', 'Carrera');
	var $helpers = array('Access');

	function index(){
	//	Verificacion de sesion del sistema		
		if(!$this->Access->getMy('username')){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'convocatorias','action' => 'publicaciones'));
		}
		$this->User->recursive = 0;
		$this->set('users', $this->paginate());
	}

	function view($id = null){
	//	Verificacion de sesion del sistema		
		if(!$this->Access->getMy('username')){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'convocatorias','action' => 'publicaciones'));
		}
		if(!$id){
			$this->Session->setFlash(__('Usuario Invalido', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('user', $this->User->read(null, $id));
	}
	
	function add() {
		//Verificacion de sesion del sistema
		$usuario_activo = $this->Access->getMy('username');		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'convocatorias','action' => 'publicaciones'));
		}
		if (!empty($this->data)) {
			$this->User->create();			
			if ($this->User->save($this->data)) {
				$this->Session->setFlash(__('El usuario ha sido guardado', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('El usuario no ha sido guardado. Intente de nuevo', true));				
			}
		}
		$groups = $this->User->Group->find('list',array('fields'=>array('Group.id','Group.nombre')));
		$this->set(compact('groups'));
	}
	
	//Registrar
	function register() {
		if (!empty($this->data)) {
			$this->User->create();
			if ($this->User->save($this->data)) {
				$this->Session->setFlash(__('Has sido registrado, ya puedes iniciar sesion', true));
				$this->redirect(array('controller'=>'convocatorias','action' => 'publicaciones'));
			} else {					
				$this->Session->setFlash(__('El usuario no ha sido guardado. Intente de nuevo', true));				
			}
		}
		$groups = $this->User->Group->find('list');
		$departamentos = $this->Departamento->find('list',array('fields'=>array('Departamento.id','Departamento.nombre')));
		$carreras = $this->Carrera->find('list',array('fields'=>array('Carrera.id','Carrera.nombre')));
		$this->set(compact('groups', 'departamentos', 'carreras'));
	}
	
	function edit($id = null){		
		//Verificacion de sesion del sistema
		$usuario_activo = $this->Access->getMy('username');		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'convocatorias','action' => 'publicaciones'));
		}
		
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Usuario Invalido', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			$user=$this->User->read(null, $id);		
			$this->User->id = $this->Access->getMy('id');
			
			$ext="";
			//die(var_dump($this->data['User']));
			/*
			extract($this->data['User']['File']);
			//Determinar la extension				
			if($this->data['User']['File']['type'] == "application/pdf"){
				$ext = ".pdf";
			}else if($this->data['User']['File']['type'] == "application/msword"){
				$ext = ".doc";
			}else if($this->data['User']['File']['type'] == "application/vnd.openxmlformats-officedocument.wordprocessingml.document"){
				$ext = ".docx";
			}
		
			if(!empty($ext)){
					//Subir el archivo
		    		if ($size && !$error) {
		        		move_uploaded_file($this->data['User']['File']['tmp_name'], "hv/".$this->User->id.$ext);
		        		$hoja_vida = $this->User->id.$ext;
		        		//Update el postulado		        		
						$this->User->saveField("hoja_vida", $hoja_vida);
				    }
			}
			
			*/
			
			if ($this->User->save($this->data)) {				
				if($id == $user['User']['id']){
					$this->Session->setFlash(__('Perfil Guardado', true));
					$this->redirect(array('controller'=>'convocatorias','action' => 'publicaciones'));
				}else{
					$this->Session->setFlash(__('Usuario Guardado', true));
					$this->redirect(array('controller'=>'users','action' => 'index'));
				}
			} else {
				$this->Session->setFlash(__('El usuario no ha sido guardado. Intente de nuevo.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->User->read(null, $id);
		}
		
		$groups = $this->User->Group->find('list', array("fields"=>array('Group.id', 'Group.nombre')));
		$group_id = $this->Access->getMy('group_id');
		$user = $this->data;
		
		//die(var_dump($user));
		
		$departamentos = $this->User->Municipio->Departamento->find('list',array('fields'=>array('Departamento.id','Departamento.nombre')));
		$carreras = $this->User->Carrera->find('list',array('fields'=>array('Carrera.id','Carrera.nombre')));		
		$municipios = $this->User->Municipio->find('list',array('fields'=>array('Municipio.id','Municipio.nombre'),
											 'conditions'=>array('Municipio.id'=>$this->data['User']['municipio_id'])));
		$departamento_activo = $this->User->Municipio->Departamento->find('list',array('conditions'=>array('Departamento.id'=>$this->data['User']['municipio_id'])));	
		$this->set(compact('groups', 'group_id', 'departamentos', 'departamento_activo', 'municipios', 'carreras'));
	}
	
	function contrasena($id = null) {
		$usuario_activo = $this->Access->getMy('username');
		//Verificacion de sesion del sistema		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'convocatorias','action' => 'publicaciones'));
		}
		
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Usuario Invalido', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			$user=$this->User->read(null, $id);
			$actual = $user['User']['password'];
			$nueva = $this->data['User']['passwords'];
			
			if($actual != $nueva){
				$this->data['User']['password']=$this->Auth->password($nueva);
			}						
			if($this->User->save($this->data)){				
				$this->Session->setFlash(__('Contrase&ntilde;a Cambiada', true));
				$this->redirect(array('controller'=>'convocatorias','action' => 'publicaciones'));
			}else{
				$this->Session->setFlash(__('La contrase&ntilde;a no fue guardada. Intente de nuevo.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->User->read(null, $id);
		}

		$user = $this->data;

		$this->set(compact('user'));
	}
	
	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Usuario Invalido', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->User->delete($id)) {
			$this->Session->setFlash(__('Usuario eliminado', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Usuario no eliminado', true));
		$this->redirect(array('action' => 'index'));
	}
	
	function login(){	
		if ($this->Session->read('Auth.User')) {			
			$this->Session->setFlash('Bienvenido!');
			$this->Auth->loginRedirect = array('controller' => 'convocatorias', 'action' => 'publicaciones');
		}		
	}
	 
	function logout() {
	    $this->Session->setFlash('Ha cerrado sesion correctamente!');
		$this->redirect($this->Auth->logout());		
	}
	
	function beforeFilter() {
	    parent::beforeFilter(); 
	   // $this->Auth->allowedActions = array('login', 'logout');
	    $grupo = $this->Access->getMy('group_id');
	    $this->Auth->loginRedirect = array('controller' => 'convocatorias', 'action' => 'publicaciones');
	  //  die($this->Session->read('Auth.User'));
	    /*
	    if($grupo == "2") 
	    	$this->Auth->loginRedirect = array('controller' => 'convocatorias', 'action' => 'publicaciones');
	    else if($grupo == "1")
	    	$this->Auth->loginRedirect = array('controller' => 'convocatorias', 'action' => 'index');
	    
	    */
	}
	
}
?>